package br.com.kitnet.sample.conexaobd;

import java.util.List;

import org.springframework.jdbc.core.JdbcTemplate;

public class PessoaDAOImpl implements PessoaDAO {

	private JdbcTemplate jdbcTemplate;
	private PessoaRowMapper pessoaRowMapper = new PessoaRowMapper();

	/**
	 * @param jdbcTemplate
	 *            the jdbcTemplate to set
	 */
	public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
		this.jdbcTemplate = jdbcTemplate;
	}

	public void AtualizarPessoa(Pessoa pessoa) {
		String sql = "UPDATE Pessoas SET pes_nome = ?, pes_idade= ? WHERE pes_cod = ?";
		jdbcTemplate.update(sql, new Object[] { pessoa.getNome(),
				pessoa.getIdade(), pessoa.getCod() });
	}

	public void ExcluirPessoa(Pessoa pessoa) {
		String sql = "DELETE FROM Pessoas WHERE pes_cod = ?";
		jdbcTemplate.update(sql, new Object[] { pessoa.getCod() });
	}

	public void InserirPessoa(Pessoa pessoa) {
		String sql = "INSERT INTO Pessoas(pes_cod,pes_nome,pes_idade) VALUES(?,?,?)";
		jdbcTemplate.update(sql, new Object[] { pessoa.getCod(),
				pessoa.getNome(), pessoa.getIdade() });
	}

	@SuppressWarnings("unchecked")
	public Pessoa SelecionaPessoa(Pessoa pessoa) {
		String sql = "SELECT * FROM Pessoas WHERE pes_cod = ?";
		List<Pessoa> listPessoa = jdbcTemplate.query(sql, new Object[] { pessoa
				.getCod() }, this.pessoaRowMapper);
		Pessoa returnPessoa = new Pessoa();
		if (listPessoa.size() > 0) {
			returnPessoa = (Pessoa) listPessoa.get(0);
		} else {
			returnPessoa.setCod(pessoa.getCod());
		}
		return returnPessoa;
	}
}
